home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Applications / Audio / Patchmix / XWindowsSource / instfm.c < prev    next >
C/C++ Source or Header  |  1992-03-28  |  1KB  |  57 lines

  1. #include "/musr/cmix/H/ugens.h"
  2. #include "/musr/cmix/H/sfheader.h"
  3. #include <stdio.h>
  4. #include <sys/file.h>
  5. #include <sys/types.h>
  6.  
  7. extern SFHEADER      sfdesc[NFILES];
  8.  
  9. inst1(p,n_args)
  10.  
  11. float *p; /* array of p-fields */
  12. int n_args; /* number of p-fields */
  13.  
  14. {
  15.     int nsamps,i,chans;
  16.     int len1;
  17.     int wave1;
  18.     float ug1;
  19.     float amp1;
  20.     float si1;
  21.     float sifm2;  /*   new */
  22.     float phase1;
  23.     float *f1;
  24.     int len2;
  25.     int wave2;
  26.     float ug2;
  27.     float amp2;
  28.     float si2;
  29.     float phase2;
  30.     float *f2;
  31.     float amp;
  32.     float out[2];
  33.     nsamps = setnote(p[0],p[1],0);
  34.     chans = sfchans(&sfdesc[0]);
  35.     wave1 = 1;
  36.     si1 = 1.00*fsize(1)/SR;
  37.     phase1 = 0.;
  38.     len1 = fsize(wave1);
  39.     f1 = (float *)floc(wave1);
  40.     wave2 = 1;
  41.     si2 = 440.00*fsize(1)/SR;
  42.     phase2 = 0.;
  43.     len2 = fsize(wave2);
  44.     f2 = (float *)floc(wave2);
  45.     for(i = 0; i < nsamps; i++) {
  46.         amp1 = 1.;
  47.         ug1 = oscili(50*amp1,si1,f1,len1,&phase1);
  48.         amp2 = 1.;
  49.         sifm2 = si2 +ug1*len2/SR;
  50.         ug2 = oscilni(amp2,sifm2,f2,len2,&phase2);
  51.         out[0] = ug2;
  52.         out[1] = out[0];
  53.         ADDOUT(out,0);
  54.     }
  55.     endnote(0);
  56. }
  57.